package org.jeecg.modules.basic.demo.student.mapper;

import java.util.List;
import java.util.Map;

import cn.hutool.core.lang.copier.SrcToDestCopier;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
//import org.jeecg.common.api.vo.SysUser;
import org.jeecg.modules.basic.demo.apartment.entity.LwgyBaseApartment;
import org.jeecg.modules.basic.demo.school.entity.LwgyBaseSchool;
import org.jeecg.modules.basic.demo.student.entity.LwgyBaseStudent;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * @Description: lwgy_base_student
 * @Author: jeecg-boot
 * @Date:   2020-12-11
 * @Version: V1.0
 */
public interface LwgyBaseStudentMapper extends BaseMapper<LwgyBaseStudent> {

    List<LwgyBaseStudent> queryStudentByCode(Page<LwgyBaseStudent> page,@Param(Constants.WRAPPER)QueryWrapper<LwgyBaseStudent> queryWrapper);

    List<LwgyBaseStudent> queryStuByNum(Page<LwgyBaseStudent> page, @Param(Constants.WRAPPER)QueryWrapper<LwgyBaseStudent> queryWrapper);

    List<LwgyBaseStudent> queryLeaveStudent(Page<LwgyBaseStudent> page,
                                            @Param(Constants.WRAPPER)QueryWrapper<LwgyBaseStudent> queryWrapper,
                                            @Param("leaveTime")String leaveTime);

    List<LwgyBaseStudent> queryPageListCustom(Page<LwgyBaseStudent> page, @Param(Constants.WRAPPER)QueryWrapper<LwgyBaseStudent> queryWrapper);

    List<LwgyBaseStudent> exportXlsStu(@Param(value = "lwgyBed") LwgyBaseStudent lwgyStudent);

    List<Map<String, String>> listByPid(String pid);

    List<Map<String, String>> listByName(String name);

    List<Map<String, String>> getStuInfoById(String id);

    List<LwgyBaseStudent> getNotAccountStuList();

    List<String> getAllSysUser(@Param(Constants.WRAPPER)QueryWrapper queryWrapper);

    LwgyBaseStudent getStudentByNumber(@RequestParam(name = "studentNumber") String studentNumber);

    List<LwgyBaseStudent> getStuListByStuNumber(String[] split);

    List<LwgyBaseStudent> getListByJob(@Param(Constants.WRAPPER) QueryWrapper queryWrapper);

    List<LwgyBaseStudent> queryPageListStudent(Page<LwgyBaseStudent> page, @Param(Constants.WRAPPER)QueryWrapper<LwgyBaseStudent> queryWrapper);

}
